﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using log4net;
using Iudicium.Tramites.CRN;
using Iudicium.Tramites;

public partial class Servicios_TipoTramite_FormularioTipoTramite : System.Web.UI.Page
{
    private static readonly ILog log = LogManager.GetLogger("LogFile");

    private int TipoTramiteId
    {
        set { TipoTramiteIdHiddenField.Value = value.ToString(); }
        get
        {
            int TipoTramiteId = 0;
            try
            {
                TipoTramiteId = Convert.ToInt32(TipoTramiteIdHiddenField.Value);
            }
            catch (Exception ex)
            {
                log.Error("No se pudo convertir TipoTramiteIdHiddenField.Value a un valor entero", ex);
            }
            return TipoTramiteId;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ObtenerParametros();
        }
    }
    private void ObtenerParametros()
    {
        if (Session["TipoTramiteId"] != null && !string.IsNullOrEmpty(Session["TipoTramiteId"].ToString()))
        {
            TipoTramiteIdHiddenField.Value = Session["TipoTramiteId"].ToString();
            CargarDatos();
        }
        Session["TipoTramiteId"] = null;
    }
    private void CargarDatos()
    {
        int categoriaId = 0;
        try
        {
            categoriaId = Convert.ToInt32(Session["CategoriaTramiteId"].ToString());
        }
        catch (Exception ex)
        {
            log.Error("No se pudo obtener la cateogoriaId de CategoriaDropDownList.SelectedValue", ex);
        }
        TipoTramite objTipoTramite = null;
        try
        {
            objTipoTramite = TipoTramiteCRN.GetTipoTramiteById(TipoTramiteId, categoriaId);
        }
        catch (Exception ex)
        {
            log.Error("No se pudo obtener el TipoTramite con id: " + TipoTramiteId, ex);
        }
        if (objTipoTramite == null)
            return;
        TipoTramiteTextBox.Text = objTipoTramite.Descripcion;
        CategoriaDropDownList.SelectedValue = objTipoTramite.CategoriaTramiteId.ToString();
    }

    protected void GuardarLinkButton_Click(object sender, EventArgs e)
    {
        int categoriaId = 0;
        try
        {
            categoriaId = Convert.ToInt32(CategoriaDropDownList.SelectedValue);
        }
        catch (Exception ex)
        {
            log.Error("No se pudo obtener la cateogoriaId de CategoriaDropDownList.SelectedValue", ex);
        }
        TipoTramite objtipotramite = new TipoTramite(TipoTramiteId, TipoTramiteTextBox.Text,categoriaId);
        if (TipoTramiteId == 0)
        {
            try
            {
                TipoTramiteId = TipoTramiteCRN.InsertTipoTramite(objtipotramite);
            }
            catch (Exception ex)
            {
                log.Error("No se pudo insertar el TipoTramite", ex);
                Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "El registro del TipoTramite no se pudo completar correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Error);
                return;
            }
            Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "El registro del Tipotramite se realizó correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Alert);
        }
        else
        {
            try
            {
                TipoTramiteCRN.UpdateTipoTramite(objtipotramite);
            }
            catch (Exception ex)
            {
                log.Error("No se pudo actualizar los datos del TipoTramite", ex);
                Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "Los datos del TipoTramite no se pudieron editar correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Error);
                return;
            }
            Iudicium.Utilitarios.Notificacion.MostrarNotificacion(
                    "Los datos del tipotramite se editaron correctamente.",
                    Iudicium.Utilitarios.Notificacion.TipoNotificacion.Alert);
        }
        Session["CategoriaTramiteId"] = categoriaId;
        Response.Redirect("~/Servicios/TipoTramite/ListaTipoTramites.aspx");

    }
}
